/**
 *                            License
 * THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS  
 * CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). 
 * THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW.  
 * ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR  
 * COPYRIGHT LAW IS PROHIBITED.
 * 
 * BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND  
 * AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE  
 * MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED 
 * HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
 * 
 */
package com.lineage.server.model.map;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.lineage.server.datatables.MapsTable;
import com.lineage.server.utils.FileUtil;
import com.lineage.server.utils.collections.Lists;
import com.lineage.server.utils.collections.Maps;

/**
 * 地图 (maps/\d*.txt)读取
 */
public class TextMapReader extends MapReader {

    /** 纪录用 */
    private static Logger _log = Logger
            .getLogger(TextMapReader.class.getName());

    /** 地图的路径 */
    private static final String MAP_DIR = "./maps/";

    /** MAP_INFO 中编号的位置 */
    public static final int MAPINFO_MAP_NO = 0;

    /** MAP_INFO 开始X座标的位置 */
    public static final int MAPINFO_START_X = 1;

    /** MAP_INFO 结束X座标的位置 */
    public static final int MAPINFO_END_X = 2;

    /** MAP_INFO 开始Y座标的位置 */
    public static final int MAPINFO_START_Y = 3;

    /** MAP_INFO 结束Y座标的位置 */
    public static final int MAPINFO_END_Y = 4;

    /**
     * mapInfo：地图编号、地图构成大小. 格式为 {mapNo,StartX,EndX,StartY,EndY}
     */
    private static final int[][] MAP_INFO = { //
    { 0, 32256, 32767, 32768, 33279 }, // 说话之岛
            { 1, 32576, 32831, 32704, 32959 }, // 冒险洞窟1层
            { 2, 32576, 32895, 32704, 32959 }, // 冒险洞窟2层
            { 3, 32576, 32831, 32704, 32959 }, // 甘特之家
            { 4, 32448, 34303, 32064, 33599 }, // 整个大陆
            { 5, 32704, 32767, 32768, 32831 }, // 去往古鲁丁的船
            { 6, 32704, 32831, 32768, 32831 }, // 去往说话之岛的船
            { 7, 32640, 32895, 32640, 32895 }, // 古鲁丁地监1层
            { 8, 32640, 32895, 32640, 32895 }, // 古鲁丁地监2层
            { 9, 32640, 32895, 32640, 32895 }, // 古鲁丁地监3层
            { 10, 32640, 32831, 32640, 32895 }, // 古鲁丁地监4层
            { 11, 32640, 32895, 32640, 32895 }, // 古鲁丁地监5层
            { 12, 32640, 32895, 32640, 32895 }, // 古鲁丁地监6层
            { 13, 32640, 32895, 32640, 32895 }, // 古鲁丁地监7层
            { 14, 32512, 33023, 32704, 32895 }, // 海底隧道
            { 15, 32704, 32767, 32768, 32831 }, // 肯特内城
            { 16, 32704, 32831, 32704, 32895 }, // 海拉的研究所
            { 17, 32704, 32767, 32768, 32831 }, // 娜鲁帕洞穴
            { 18, 32704, 32767, 32768, 32831 }, // 都佩杰诺地监
            { 19, 32704, 32895, 32640, 32895 }, // 妖精森林地监1层
            { 20, 32704, 32831, 32704, 32831 }, // 妖精森林地监2层
            { 21, 32640, 32831, 32704, 32895 }, // 妖精森林地监3层
            { 22, 32640, 32895, 32640, 32895 }, // 杰瑞德的试炼地监
            { 23, 32640, 32895, 32640, 32895 }, // 风木城地监1楼
            { 24, 32640, 32895, 32640, 32895 }, // 风木城地监2楼
            { 25, 32704, 32895, 32704, 32831 }, // 骑士洞穴1层
            { 26, 32704, 32895, 32640, 32895 }, // 骑士洞穴2层
            { 27, 32640, 32895, 32704, 32895 }, // 骑士洞穴3层
            { 28, 32640, 32895, 32704, 32895 }, // 骑士洞穴4层
            { 29, 32704, 32767, 32768, 32831 }, // 风木内城
            { 30, 32640, 32895, 32640, 32895 }, // 龙之谷地监1层
            { 31, 32640, 32895, 32640, 32895 }, // 龙之谷地监2层
            { 32, 32576, 32831, 32704, 32959 }, // 龙之谷地监3层
            { 33, 32576, 32831, 32704, 32959 }, // 龙之谷地监4层
            { 34, 32640, 32831, 32704, 32895 }, // Hall of Honor
            { 35, 32576, 32831, 32704, 32959 }, // 龙之谷地监5层
            { 36, 32576, 32831, 32704, 32959 }, // 龙之谷地监6层
            { 37, 32576, 32831, 32704, 32959 }, // 安塔瑞斯巢穴
            { 38, 32640, 32831, 32704, 32895 }, // Hall of Honor
            { 39, 32640, 32831, 32704, 32895 }, // Hall of Honor
            { 40, 32640, 32831, 32704, 32895 }, // Hall of Honor
            { 41, 32640, 32831, 32704, 32895 }, // Hall of Honor
            { 42, 32512, 32831, 32704, 33023 }, // 新增未知-----
            { 43, 32704, 32831, 32704, 32831 }, // 蚂蚁洞穴
            { 44, 32704, 32831, 32704, 32831 }, // 蚂蚁洞穴
            { 45, 32704, 32831, 32704, 32831 }, // 蚂蚁洞穴
            { 46, 32704, 32831, 32704, 32831 }, // 蚂蚁洞穴
            { 47, 32704, 32831, 32704, 32831 }, // 蚂蚁洞穴
            { 48, 32704, 32831, 32704, 32831 }, // 蚂蚁洞穴
            { 49, 32704, 32831, 32704, 32831 }, // 蚂蚁洞穴
            { 50, 32704, 32831, 32704, 32831 }, // 蚂蚁洞穴
            { 51, 32640, 32831, 32704, 32895 }, // 蚂蚁洞穴
            { 52, 32640, 32767, 32768, 32895 }, // 奇岩内城
            { 53, 32640, 32895, 32640, 32895 }, // 奇岩地监 1层
            { 54, 32640, 32895, 32640, 32895 }, // 奇岩地监 2层
            { 55, 32640, 32831, 32704, 32959 }, // 奇岩地监 3层
            { 56, 32640, 32895, 32640, 32895 }, // 奇岩地监 4层
            { 57, 32576, 33023, 32512, 32959 }, // 伊斯努特之岛
            { 58, 32512, 32831, 32704, 33023 }, // 隐藏之谷
            { 59, 32640, 32831, 32768, 32895 }, // 伊娃王国地监1层
            { 60, 32640, 32767, 32768, 32959 }, // 伊娃王国地监2层
            { 61, 32640, 32767, 32768, 32895 }, // 伊娃王国地监3层
            { 62, 32640, 32767, 32768, 32895 }, // 伊娃圣殿
            { 63, 32576, 32895, 32640, 32959 }, // 伊娃王国
            { 64, 32512, 32639, 32768, 32895 }, // 海音内城
            { 65, 32704, 32831, 32768, 32895 }, // 法利昂巢穴
            { 66, 32704, 32895, 32768, 32959 }, // 侏儒洞穴
            { 67, 32640, 32831, 32704, 32895 }, // 巴拉卡斯巢穴
            { 68, 32576, 33023, 32512, 32959 }, // 歌唱之岛
            { 69, 32512, 32831, 32704, 33023 }, // 隐藏之谷
            { 70, 32576, 33023, 32640, 33087 }, // 遗忘之岛
            { 72, 32704, 32895, 32768, 32895 }, // 水晶洞穴 B1
            { 73, 32704, 32959, 32704, 32959 }, // 冰女王之城 B2
            { 74, 32704, 32895, 32768, 32959 }, // 冰女王之城 B3
            { 75, 32704, 32831, 32768, 32959 }, // 欧瑞 象牙塔1层
            { 76, 32704, 32831, 32768, 32895 }, // 欧瑞 象牙塔2层
            { 77, 32704, 32831, 32768, 32895 }, // 欧瑞 象牙塔3层
            { 78, 32832, 32959, 32704, 32831 }, // 欧瑞 象牙塔4层
            { 79, 32704, 32831, 32768, 32895 }, // 欧瑞 象牙塔5层
            { 80, 32704, 32831, 32768, 32895 }, // 欧瑞 象牙塔6层
            { 81, 32704, 32831, 32768, 32895 }, // 欧瑞 象牙塔7层
            { 82, 32640, 32767, 32768, 32895 }, // 欧瑞 象牙塔8层
            { 83, 32704, 32831, 32768, 32831 }, // 去往遗忘之岛的船
            { 84, 32704, 32767, 32768, 32831 }, // 去往海音的船
            { 85, 32512, 32831, 32640, 32959 }, // 歌唱之岛地监
            { 86, 32768, 33023, 32704, 32895 }, // 隐藏之谷地监
            { 87, 32704, 32767, 32768, 32831 }, // 帕古洞穴
            { 88, 33472, 33599, 32640, 32767 }, // 奇岩竞技场
            { 89, 32640, 32767, 32832, 32959 }, // 奇岩竞技场
            { 90, 32640, 32767, 32832, 32959 }, // 奇岩竞技场
            { 91, 32640, 32767, 32832, 32959 }, // 说话之岛竞技场
            { 92, 32640, 32767, 32832, 32959 }, // 古鲁丁竞技场
            { 93, 32640, 32767, 32832, 32959 }, // 肯特竞技场
            { 94, 32640, 32767, 32832, 32959 }, // 风木竞技场
            { 95, 32640, 32767, 32832, 32959 }, // 银骑士竞技场
            { 96, 32640, 32767, 32832, 32959 }, // 巴拉卡斯巢穴竞技场
            { 97, 32640, 32767, 32832, 32959 }, // 海音竞技场
            { 98, 32640, 32767, 32832, 32959 }, // 威顿竞技场
            { 99, 32704, 32767, 32768, 32831 }, // 管理者房间
            { 100, 32704, 32831, 32768, 32895 }, // 新增未知-----
            { 101, 32704, 32895, 32704, 32895 }, // 傲慢之塔1楼
            { 102, 32704, 32895, 32704, 32895 }, // 傲慢之塔2楼
            { 103, 32704, 32895, 32704, 32895 }, // 傲慢之塔3楼
            { 104, 32576, 32767, 32768, 32959 }, // 傲慢之塔4楼
            { 105, 32576, 32767, 32768, 32959 }, // 傲慢之塔5楼
            { 106, 32576, 33855, 32768, 32959 }, // 傲慢之塔6楼
            { 107, 32576, 32767, 32768, 32959 }, // 傲慢之塔7楼
            { 108, 32576, 32767, 32768, 32959 }, // 傲慢之塔8楼
            { 109, 32576, 32767, 32768, 32959 }, // 傲慢之塔9楼
            { 110, 32704, 32895, 32704, 32895 }, // 傲慢之塔10楼
            { 111, 32576, 32767, 32768, 32959 }, // 傲慢之塔11楼
            { 112, 32704, 32895, 32704, 32895 }, // 傲慢之塔12楼
            { 113, 32704, 32895, 32704, 32895 }, // 傲慢之塔13楼
            { 114, 32576, 32767, 32768, 32959 }, // 傲慢之塔14楼
            { 115, 32576, 32767, 32768, 32959 }, // 傲慢之塔15楼
            { 116, 32704, 32831, 32832, 32895 }, // 傲慢之塔16楼
            { 117, 32576, 32767, 32768, 32959 }, // 傲慢之塔17楼
            { 118, 32576, 32767, 32768, 32959 }, // 傲慢之塔18楼
            { 119, 32576, 32767, 32768, 32959 }, // 傲慢之塔19楼
            { 120, 32704, 32895, 32704, 32895 }, // 傲慢之塔20楼
            { 121, 32576, 32767, 32768, 32959 }, // 傲慢之塔21楼
            { 122, 32704, 32895, 32704, 32895 }, // 傲慢之塔22楼
            { 123, 32704, 32895, 32704, 32895 }, // 傲慢之塔23楼
            { 124, 32576, 32767, 32768, 32959 }, // 傲慢之塔24楼
            { 125, 32576, 32767, 32768, 32959 }, // 傲慢之塔25楼
            { 126, 32704, 32831, 32832, 32895 }, // 傲慢之塔26楼
            { 127, 32576, 32767, 32768, 32959 }, // 傲慢之塔27楼
            { 128, 32576, 32767, 32768, 32959 }, // 傲慢之塔28楼
            { 129, 32576, 32767, 32768, 32959 }, // 傲慢之塔29楼
            { 130, 32704, 32895, 32704, 32895 }, // 傲慢之塔30楼
            { 131, 32576, 32767, 32768, 32959 }, // 傲慢之塔31楼
            { 132, 32704, 32895, 32704, 32895 }, // 傲慢之塔32楼
            { 133, 32704, 32895, 32704, 32895 }, // 傲慢之塔33楼
            { 134, 32576, 32767, 32768, 32959 }, // 傲慢之塔34楼
            { 135, 32576, 32767, 32768, 32959 }, // 傲慢之塔35楼
            { 136, 32704, 32831, 32832, 32895 }, // 傲慢之塔36楼
            { 137, 32576, 32767, 32768, 32959 }, // 傲慢之塔37楼
            { 138, 32576, 32767, 32768, 32959 }, // 傲慢之塔38楼
            { 139, 32576, 32767, 32768, 32959 }, // 傲慢之塔39楼
            { 140, 32704, 32895, 32704, 32895 }, // 傲慢之塔40楼
            { 141, 32576, 32767, 32768, 32959 }, // 傲慢之塔41楼
            { 142, 32704, 32895, 32704, 32895 }, // 傲慢之塔42楼
            { 143, 32704, 32895, 32704, 32895 }, // 傲慢之塔43楼
            { 144, 32576, 32767, 32768, 32959 }, // 傲慢之塔44楼
            { 145, 32576, 32767, 32768, 32959 }, // 傲慢之塔45楼
            { 146, 32576, 32831, 32768, 32959 }, // 傲慢之塔46楼
            { 147, 32576, 32767, 32768, 32959 }, // 傲慢之塔47楼
            { 148, 32576, 32767, 32768, 32959 }, // 傲慢之塔48楼
            { 149, 32576, 32767, 32768, 32959 }, // 傲慢之塔49楼
            { 150, 32704, 32895, 32704, 32895 }, // 傲慢之塔50楼
            { 151, 32576, 32767, 32768, 32959 }, // 傲慢之塔51楼
            { 152, 32576, 32767, 32768, 32959 }, // 傲慢之塔52楼
            { 153, 32576, 32767, 32768, 32959 }, // 傲慢之塔53楼
            { 154, 32704, 32895, 32704, 32895 }, // 傲慢之塔54楼
            { 155, 32704, 32895, 32704, 32895 }, // 傲慢之塔55楼
            { 156, 32704, 32831, 32768, 32831 }, // 傲慢之塔56楼
            { 157, 32576, 32767, 32768, 32959 }, // 傲慢之塔57楼
            { 158, 32576, 32767, 32768, 32959 }, // 傲慢之塔58楼
            { 159, 32576, 32767, 32768, 32959 }, // 傲慢之塔59楼
            { 160, 32576, 32767, 32768, 32959 }, // 傲慢之塔60楼
            { 161, 32576, 32767, 32768, 32959 }, // 傲慢之塔61楼
            { 162, 32576, 32767, 32768, 32959 }, // 傲慢之塔62楼
            { 163, 32576, 32767, 32768, 32959 }, // 傲慢之塔63楼
            { 164, 32704, 32895, 32704, 32895 }, // 傲慢之塔64楼
            { 165, 32704, 32895, 32704, 32895 }, // 傲慢之塔65楼
            { 166, 32704, 32831, 32768, 32831 }, // 傲慢之塔66楼
            { 167, 32576, 32767, 32768, 32959 }, // 傲慢之塔67楼
            { 168, 32576, 32767, 32768, 32959 }, // 傲慢之塔68楼
            { 169, 32576, 32767, 32768, 32959 }, // 傲慢之塔69楼
            { 170, 32576, 32767, 32768, 32959 }, // 傲慢之塔70楼
            { 171, 32576, 32767, 32768, 32959 }, // 傲慢之塔71楼
            { 172, 32576, 32767, 32768, 32959 }, // 傲慢之塔72楼
            { 173, 32576, 32767, 32768, 32959 }, // 傲慢之塔73楼
            { 174, 32704, 32895, 32704, 32895 }, // 傲慢之塔74楼
            { 175, 32704, 32895, 32704, 32895 }, // 傲慢之塔75楼
            { 176, 32704, 32831, 32768, 32831 }, // 傲慢之塔76楼
            { 177, 32576, 32767, 32768, 32959 }, // 傲慢之塔77楼
            { 178, 32576, 32767, 32768, 32959 }, // 傲慢之塔78楼
            { 179, 32576, 32767, 32768, 32959 }, // 傲慢之塔79楼
            { 180, 32576, 32767, 32768, 32959 }, // 傲慢之塔80楼
            { 181, 32576, 32767, 32768, 32959 }, // 傲慢之塔81楼
            { 182, 32576, 32767, 32768, 32959 }, // 傲慢之塔82楼
            { 183, 32576, 32767, 32768, 32959 }, // 傲慢之塔83楼
            { 184, 32704, 32895, 32704, 32895 }, // 傲慢之塔84楼
            { 185, 32704, 32895, 32704, 32895 }, // 傲慢之塔85楼
            { 186, 32704, 32831, 32768, 32831 }, // 傲慢之塔86楼
            { 187, 32576, 32767, 32768, 32959 }, // 傲慢之塔87楼
            { 188, 32576, 32767, 32768, 32959 }, // 傲慢之塔88楼
            { 189, 32576, 32767, 32768, 32959 }, // 傲慢之塔89楼
            { 190, 32576, 32767, 32768, 32959 }, // 傲慢之塔90楼
            { 191, 32576, 32767, 32768, 32959 }, // 傲慢之塔91楼
            { 192, 32576, 32767, 32768, 32959 }, // 傲慢之塔92楼
            { 193, 32576, 32767, 32768, 32959 }, // 傲慢之塔93楼
            { 194, 32704, 32895, 32704, 32895 }, // 傲慢之塔94楼
            { 195, 32704, 32895, 32704, 32895 }, // 傲慢之塔95楼
            { 196, 32704, 32831, 32768, 32831 }, // 傲慢之塔96楼
            { 197, 32576, 32767, 32768, 32959 }, // 傲慢之塔97楼
            { 198, 32576, 32767, 32768, 32959 }, // 傲慢之塔98楼
            { 199, 32576, 32767, 32768, 32959 }, // 傲慢之塔99楼
            { 200, 32576, 32831, 32768, 33023 }, // 傲慢之塔100楼
            { 201, 32640, 33535, 32704, 32959 }, // 法师试练地监
            { 202, 32640, 33535, 32704, 32895 }, // 法师试练地监
            { 203, 32640, 33535, 32704, 32895 }, // 法师试练地监
            { 204, 32640, 33535, 32704, 32895 }, // 法师试练地监
            { 205, 32640, 33535, 32704, 32895 }, // Unknown
            { 206, 32640, 33535, 32704, 32895 }, // Unknown
            { 207, 32640, 33535, 32704, 32895 }, // Unknown
            { 208, 32640, 33535, 32704, 32895 }, // Unknown
            { 209, 32704, 32767, 32768, 32831 }, // 黑暗妖精地监
            { 210, 32640, 33535, 32704, 32895 }, // 黑暗妖精地监
            { 211, 32640, 33535, 32704, 32895 }, // 黑暗妖精地监
            { 213, 32704, 32767, 32768, 32831 }, // 黑暗妖精地监
            { 217, 32640, 32767, 32768, 32831 }, // 变种巨蚁地监
            { 221, 32640, 32895, 32640, 32895 }, // 杰瑞德的试炼地监
            { 237, 32704, 32767, 32768, 32831 }, // 吉姆的密室
            { 240, 32640, 32767, 33024, 33151 }, // 肯特城地监1层
            { 241, 32704, 32831, 32832, 32959 }, // 肯特城地监2层
            { 242, 32704, 32831, 32896, 33087 }, // 肯特城地监3层
            { 243, 32640, 32767, 32832, 33023 }, // 肯特城地监4层
            { 244, 32704, 33023, 32768, 33087 }, // 污浊之地
            { 248, 32704, 32831, 32768, 32895 }, // 隐藏的地下宫殿 1楼
            { 249, 32704, 32831, 32832, 32895 }, // 隐藏的地下宫殿 2楼
            { 250, 32704, 32831, 32768, 32895 }, // 隐藏的地下宫殿 3楼
            { 251, 32768, 32831, 32768, 32831 }, // 隐藏的地下宫殿 4楼
            { 252, 32576, 32767, 32832, 32895 }, // 海音地下监狱
            { 253, 32704, 32831, 32832, 33023 }, // 伊娃王国
            { 254, 32576, 32767, 32768, 32959 }, // 巴贝多的隐身处
            { 255, 32640, 32831, 32768, 32895 }, // 废弃的矿坑
            { 256, 32640, 32895, 32768, 33023 }, // 废弃的矿坑古道
            { 257, 32640, 32831, 32768, 32895 }, // 亚丁地下墓穴 1层
            { 258, 32576, 32831, 32768, 33151 }, // 亚丁地下墓穴 2层-4层
            { 259, 32704, 32767, 32768, 33023 }, // 亚丁地下墓穴 3层
            { 300, 32832, 32959, 32448, 32639 }, // 亚丁内城
            { 301, 32576, 32767, 32768, 33023 }, // 傲慢之塔地下水路
            { 302, 32704, 32767, 32832, 32895 }, // 赛菲亚地监
            { 303, 32576, 32959, 32512, 32895 }, // 梦幻之岛
            { 304, 32576, 32959, 32768, 33023 }, // 沉默洞穴
            { 305, 32704, 32767, 32768, 32831 }, // 布鲁迪卡洞穴
            { 306, 32512, 32767, 32768, 32959 }, // 黑暗妖精试练地监
            { 307, 32704, 32959, 32768, 32959 }, // 拉斯塔巴德地下洞穴 1层
            { 308, 32704, 33023, 32768, 32959 }, // 拉斯塔巴德地下洞穴 2层
            { 309, 32704, 33087, 32768, 32959 }, // 拉斯塔巴德地下洞穴 3层
            { 310, 32640, 32895, 32768, 33023 }, // 欧姆地监
            { 320, 32640, 33087, 32768, 33087 }, // 狄亚得要塞
            { 330, 32640, 32831, 32768, 33023 }, // 矿物洞穴
            { 340, 32640, 32895, 32704, 32959 }, // 古鲁丁市场
            { 350, 32640, 32767, 32768, 32895 }, // 奇岩市场
            { 360, 32640, 32831, 32704, 32895 }, // 欧瑞市场
            { 370, 32640, 32831, 32704, 32895 }, // 银骑士村庄市场
            { 400, 32448, 33087, 32576, 33087 }, // 大洞穴隐遁者村庄地区
            { 401, 32704, 32895, 32768, 32895 }, // 大洞穴隐遁者地区 -连结- 隐遁地北方废墟
            { 410, 32640, 32959, 32704, 33087 }, // 魔族神殿
            { 420, 32640, 32831, 32832, 33151 }, // 地底湖
            { 430, 32640, 33023, 32704, 33087 }, // 精灵墓穴
            { 440, 32256, 32767, 32768, 33279 }, // 海贼岛
            { 441, 32640, 32895, 32704, 32959 }, // 海贼岛地监 1层
            { 442, 32704, 32895, 32704, 32895 }, // 海贼岛地监 2层
            { 443, 32640, 32895, 32640, 32959 }, // 海贼岛地监 3层
            { 444, 32704, 32767, 32768, 32831 }, // 海贼岛地监 4层
            { 445, 32704, 32831, 32832, 32895 }, // 隐藏之港
            { 446, 32704, 32831, 32768, 32831 }, // 去往隐藏之港的船
            { 447, 32704, 32767, 32768, 32831 }, // 去往海贼岛的船
            { 450, 32576, 32831, 32768, 32959 }, // 拉斯塔巴德正门
            { 451, 32704, 32895, 32704, 32895 }, // 1层 集会场
            { 452, 32704, 32831, 32768, 32895 }, // 1楼 突击队训练场
            { 453, 32704, 32895, 32704, 32895 }, // 1楼 魔兽君王之室
            { 454, 32704, 32895, 32704, 32895 }, // 1楼 魔兽调教场
            { 455, 32704, 32895, 32768, 32895 }, // 1楼 魔兽训练场
            { 456, 32704, 32831, 32768, 32895 }, // 1楼 魔兽召唤室
            { 457, 32640, 32767, 32768, 32895 }, // 1楼 黑暗结界
            { 460, 32704, 32895, 32768, 32895 }, // 2楼 黑魔法修练场
            { 461, 32640, 32895, 32768, 32895 }, // 2楼 黑魔法研究室
            { 462, 32640, 32895, 32768, 32895 }, // 2楼 法令军王之室
            { 463, 32704, 32831, 32768, 32895 }, // 2楼 法令军王的书房
            { 464, 32704, 32831, 32768, 32895 }, // 2楼 暗黑精灵召唤室
            { 465, 32704, 32831, 32768, 32895 }, // 2楼 暗黑精灵栖息地
            { 466, 32704, 32831, 32768, 32895 }, // 2楼 暗黑精灵研究室
            { 467, 32640, 32767, 32768, 32895 }, // 2楼 黑暗结界
            { 468, 32576, 32703, 32832, 32959 }, // 2楼 黑暗结界
            { 470, 32640, 32895, 32768, 32895 }, // 3楼 恶灵祭坛
            { 471, 32704, 32831, 32768, 32895 }, // 3楼 恶灵之主祭坛
            { 472, 32640, 32831, 32704, 32895 }, // 3楼 佣兵训练场
            { 473, 32704, 32959, 32768, 32895 }, // 3楼 冥法军训练场
            { 474, 32704, 32831, 32768, 32895 }, // 3楼 欧姆实验室
            { 475, 32640, 32831, 32768, 32895 }, // 3楼 冥法军王之室
            { 476, 32704, 32831, 32704, 32895 }, // 3楼 中央控制室
            { 477, 32704, 32831, 32768, 32959 }, // 3楼 恶灵之主佣兵室
            { 478, 32640, 32831, 32704, 32895 }, // 3楼 控制室走廊
            { 480, 32576, 32895, 32768, 33023 }, // 海贼岛后半部
            { 481, 32640, 32831, 32768, 32895 }, // 卡蜜拉的房间
            { 482, 32576, 32831, 32704, 32895 }, // 福朗克的迷宫
            { 483, 32640, 32895, 32704, 32959 }, // 迪哥的废弃监狱
            { 484, 32704, 32895, 32704, 32895 }, // 豪势的地监
            { 490, 32640, 32767, 32768, 32895 }, // 地下训练场
            { 491, 32640, 32767, 32704, 32895 }, // 地下通道
            { 492, 32704, 32895, 32768, 32895 }, // 暗杀军王之室
            { 493, 32704, 32831, 32704, 32831 }, // 地下控制室
            { 494, 32768, 32895, 32704, 32831 }, // 地下处刑场
            { 495, 32704, 32895, 32704, 32895 }, // 地下竞技场
            { 496, 32768, 32895, 32768, 32895 }, // 地下监狱
            { 500, 32640, 32831, 32704, 32895 }, // 韩国活动地图
            { 501, 32576, 33215, 32512, 32959 }, // v
            { 502, 32576, 33215, 32576, 32959 }, // 韩国活动地图
            { 503, 32576, 33215, 32576, 32959 }, // 韩国活动地图
            { 504, 32576, 33215, 32576, 32959 }, // 韩国活动地图
            { 505, 32576, 33215, 32576, 32959 }, // 韩国活动地图
            { 506, 32512, 33215, 32576, 32959 }, // 韩国活动地图
            { 507, 32704, 33023, 32768, 32959 }, // 韩国活动地图
            { 508, 32768, 32895, 33088, 33215 }, // 韩国活动地图
            { 509, 32704, 32767, 32768, 32831 }, // 混沌的大战
            { 511, 32576, 33215, 32576, 32895 }, // 韩国活动地图
            { 512, 32576, 33215, 32576, 32895 }, // 韩国活动地图
            { 513, 32576, 33215, 32576, 32895 }, // 韩国活动地图
            { 514, 32576, 33215, 32576, 32895 }, // 韩国活动地图
            { 515, 32576, 33215, 32576, 32895 }, // 韩国活动地图
            { 516, 32576, 33215, 32576, 32895 }, // 韩国活动地图
            { 518, 32640, 32831, 32704, 32895 }, // 新增未知-----
            { 521, 32576, 32767, 32832, 33023 }, // 暗影神殿外围
            { 522, 32576, 32831, 32832, 32959 }, // 暗影神殿 1层
            { 523, 32576, 32831, 32832, 32959 }, // 暗影神殿 2层
            { 524, 32576, 32831, 32832, 32959 }, // 暗影神殿 3层
            { 530, 32704, 32959, 32768, 32959 }, // 4楼 格兰肯神殿、长老·琪娜之室
            { 531, 32704, 32895, 32704, 32959 }, // 4楼 长老·巴塔斯之室、长老·安迪斯之室
            { 532, 32704, 32895, 32768, 32895 }, // 4楼 庭园广场、长老·艾迪尔之室
            { 533, 32704, 32895, 32768, 33023 }, // 4楼
                                                 // 长老·泰玛斯之室、长老·拉曼斯之室、长老·巴陆德之室
            { 534, 32704, 32959, 32768, 32895 }, // 4楼
                                                 // 长老会议厅、副神官·卡山德拉之室、真·冥皇丹特斯之室
            { 535, 32576, 32895, 32704, 33023 }, // 黑暗妖精圣地
            { 536, 32640, 32831, 32704, 32895 }, // 3楼 黑暗结界
            { 541, 32640, 32831, 32768, 32895 }, // 巨蚁洞穴A
            { 542, 32640, 32831, 32768, 32895 }, // 巨蚁洞穴B
            { 543, 32704, 32895, 32704, 32895 }, // 巨蚁女皇洞穴
            { 550, 32384, 32895, 32640, 33151 }, // 船舶之墓 海面
            { 551, 32640, 32767, 32768, 32895 }, // 船舶之墓 船舱
            { 552, 32704, 32767, 32768, 32895 }, // 船舶之墓 船舱
            { 553, 32704, 32831, 32768, 32895 }, // 船舶之墓 船舱
            { 554, 32704, 32831, 32768, 32895 }, // 船舶之墓 船舱
            { 555, 32704, 32767, 32768, 32895 }, // 船舶之墓 船舱
            { 556, 32704, 32831, 32768, 32895 }, // 船舶之墓 船舱
            { 557, 32704, 32831, 32768, 32895 }, // 船舶之墓 船舱
            { 558, 32704, 33215, 32768, 33279 }, // 船舶之墓 深海
            { 600, 32640, 32895, 32704, 32895 }, // 欲望洞穴入口
            { 601, 32640, 32959, 32704, 32959 }, // 欲望洞穴大厅
            { 602, 32640, 32767, 32768, 32895 }, // 炎魔谒见所
            { 603, 32640, 32767, 32768, 32895 }, // 炎魔房间
            { 604, 32768, 32895, 32768, 32895 }, // 水之领域
            { 605, 32704, 32959, 32704, 32959 }, // 火之领域
            { 606, 32640, 32895, 32704, 32895 }, // 风之领域
            { 607, 32640, 32895, 32768, 32959 }, // 地之领域
            { 608, 32640, 32767, 32832, 32959 }, // 火焰之影实验室
            { 610, 32640, 32895, 32704, 32959 }, // 日本活动地图樱花森林
            { 611, 32640, 32895, 32640, 32831 }, // 日本活动地图训练营地
            { 612, 32640, 32895, 32704, 32959 }, // 日本活动地图果子森林
            { 613, 32640, 32895, 32768, 33023 }, // 奇怪之村落
            { 620, 32768, 32831, 32768, 32831 }, // 新增未知-----
            { 621, 32640, 32895, 32768, 32959 }, // 奇怪的村庄
            { 630, 32704, 33023, 32768, 33087 }, // 天空之城
            { 631, 32704, 33087, 32640, 33023 }, // 二次元空间
            { 632, 32640, 32959, 32576, 32895 }, // 魔物管理室
            { 666, 32640, 32831, 32704, 32895 }, // 地狱
            { 701, 32576, 33023, 32512, 32959 }, // 追忆之岛
            { 725, 33472, 33663, 32576, 32767 }, // 新增未知-----
            { 726, 32640, 32767, 32832, 32959 }, // 新增未知-----
            { 777, 32448, 32831, 32832, 33151 }, // 不死魔族抛弃之地
            { 778, 32640, 32959, 32576, 33023 }, // 原生魔族抛弃之地地面
            { 779, 32768, 33023, 32704, 32895 }, // 原生魔族抛弃之地海底
            { 780, 32576, 32831, 32704, 33087 }, // 底比斯 沙漠
            { 781, 32704, 33023, 32704, 32895 }, // 底比斯 金字塔内部
            { 782, 32704, 32831, 32768, 32895 }, // 底比斯 欧西里斯祭坛
            { 783, 32704, 33343, 32576, 32959 }, // 提卡尔神庙
            { 784, 32704, 32831, 32832, 32895 }, // 库库尔坎祭坛
            { 997, 32704, 32767, 32768, 32831 }, // Unknown
            { 998, 32704, 32767, 32768, 32831 }, // Hall of Honor
            { 1000, 32704, 32895, 32768, 32959 }, // 希培莉亚
            { 1001, 32704, 32895, 32768, 32959 }, // 贝希摩斯
            { 1002, 32576, 33087, 32512, 33023 }, // 被遗忘的龙之谷
            { 1003, 32640, 32895, 32832, 32959 }, // 新增未知-----
            { 1004, 32512, 32959, 32512, 32895 }, // 新增未知-----
            { 1005, 32512, 33023, 32576, 33023 }, // 安塔瑞斯洞穴
            { 1011, 32640, 33151, 32448, 32959 }, // 法利昂洞穴
            { 1017, 32512, 33023, 32768, 33279 }, // 林德拜尔洞穴
            { 1023, 32512, 32959, 32704, 33087 }, // 巴拉卡斯洞穴
            { 2000, 32640, 32959, 32704, 33023 }, // 再生的圣所 1层-3层
            { 2001, 32640, 32959, 32704, 33023 }, // 再生的圣所 1层-3层
            { 2002, 32640, 32959, 32704, 33023 }, // 再生的圣所 1层-3层
            { 2003, 32640, 32959, 32704, 33023 }, // 再生的圣所 1层-3层
            { 2004, 32640, 32895, 32768, 32959 }, // 枯拉斯
            { 2005, 32512, 32895, 32704, 33087 }, // 新隐藏之谷
            { 2006, 32704, 32895, 32768, 32959 }, // 麦特斯的游园
            { 5001, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5002, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5003, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5004, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5005, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5006, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5007, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5008, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5009, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5010, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5011, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5012, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5013, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5014, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5015, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5016, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5017, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5018, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5019, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5020, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5021, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5022, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5023, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5024, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5025, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5026, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5027, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5028, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5029, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5030, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5031, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5032, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5033, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5034, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5035, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5036, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5037, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5038, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5039, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5040, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5041, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5042, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5043, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5044, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5045, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5046, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5047, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5048, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5049, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5050, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5051, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5052, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5053, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5054, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5055, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5056, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5057, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5058, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5059, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5060, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5061, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5062, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5063, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5064, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5065, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5066, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5067, 32704, 32831, 32704, 32831 }, // 亚丁地下盟屋
            { 5068, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5069, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5070, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5071, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5072, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5073, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5074, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5075, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5076, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5077, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5078, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5079, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5080, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5081, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5082, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5083, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5084, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5085, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5086, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5087, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5088, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5089, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5090, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5091, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5092, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5093, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5094, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5095, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5096, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5097, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5098, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5099, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5100, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5101, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5102, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5103, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5104, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5105, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5106, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5107, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5108, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5109, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5110, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5111, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5112, 32704, 32831, 32768, 32895 }, // 奇岩地下盟屋
            { 5113, 32704, 32831, 32768, 32895 }, // 海音地下盟屋
            { 5114, 32704, 32831, 32768, 32895 }, // 海音地下盟屋
            { 5115, 32704, 32831, 32768, 32895 }, // 海音地下盟屋
            { 5116, 32704, 32831, 32768, 32895 }, // 海音地下盟屋
            { 5117, 32704, 32831, 32768, 32895 }, // 海音地下盟屋
            { 5118, 32704, 32831, 32768, 32895 }, // 海音地下盟屋
            { 5119, 32704, 32831, 32768, 32895 }, // 海音地下盟屋
            { 5120, 32704, 32831, 32768, 32895 }, // 海音地下盟屋
            { 5121, 32704, 32831, 32768, 32895 }, // 海音地下盟屋
            { 5122, 32704, 32831, 32768, 32895 }, // 海音地下盟屋
            { 5123, 32704, 32831, 32768, 32895 }, // 海音地下盟屋
            { 5124, 32704, 32895, 32704, 32895 }, // 钓鱼池
            { 5125, 32768, 32895, 32768, 32895 }, // 宠物战战场
            { 5140, 32640, 32959, 32704, 32959 }, // 幽灵之家
            { 5141, 32640, 32959, 32704, 32959 }, // 幽灵之家
            { 5142, 32640, 32959, 32704, 32959 }, // 幽灵之家
            { 5143, 32704, 32831, 32768, 32895 }, // 宠物竞速赛
            { 5144, 32704, 32831, 32768, 32895 }, // 新增未知-----
            { 5145, 32704, 32831, 32768, 32895 }, // 新增未知-----
            { 5153, 32576, 32703, 32832, 32959 }, // 不知名地图
            { 5166, 32704, 32831, 32768, 32895 }, // 回忆之地
            { 5167, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5168, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5169, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5170, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5171, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5172, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5173, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5174, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5175, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5176, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5177, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5178, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5179, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5180, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5181, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5182, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5183, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5184, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5185, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5186, 32512, 32767, 32704, 32959 }, // 新恶魔王之领土
            { 5187, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5188, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5189, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5190, 32512, 32767, 32704, 32959 }, // 恶魔王之领土
            { 5191, 32704, 32895, 32768, 32959 }, // 象牙塔地下仓库
            { 5192, 32704, 32895, 32768, 32959 }, // 象牙塔地下仓库
            { 5193, 32704, 32895, 32768, 32959 }, // 象牙塔地下仓库
            { 5194, 32704, 32895, 32768, 32959 }, // 象牙塔地下仓库
            { 5195, 32704, 32895, 32768, 32959 }, // 象牙塔地下仓库
            { 5196, 32704, 32895, 32768, 32959 }, // 象牙塔地下仓库
            { 5197, 32704, 32895, 32768, 32959 }, // 象牙塔地下仓库
            { 5198, 32704, 32895, 32768, 32959 }, // 象牙塔地下仓库
            { 5199, 32704, 32895, 32768, 32959 }, // 象牙塔地下仓库
            { 5200, 32704, 32895, 32768, 32959 }, // 新增未知-----
            { 5300, 32640, 32895, 32704, 32959 }, // 新钓鱼池
            { 5301, 32640, 32895, 32704, 32959 }, // 新钓鱼池
            { 5302, 32640, 32895, 32704, 32959 }, // 新钓鱼池
            { 5303, 32704, 32895, 32768, 32959 }, // 裂痕洞穴(51 ~ 65)
            { 5384, 32704, 32895, 32640, 32831 }, // 裂痕洞穴(66 ~ 75)
            { 5435, 32704, 32959, 32704, 32959 }, // 裂痕洞穴(76 ~ 100)
            { 5501, 32704, 32959, 32832, 33087 }, // 万圣节 魔女村庄(国内)
            { 6041, 32768, 32895, 32768, 32895 }, // 极恶之地
            { 7100, 32704, 32959, 32832, 33087 }, // 万圣节 魔女村庄(海外)
            { 9000, 32576, 32895, 32640, 33023 }, // 过去的说话之岛
            { 9100, 32704, 32767, 32832, 32895 }, // 象牙塔秘密研究室
            { 9101, 32640, 32831, 32768, 32895 }, // 精气船甲板
            { 16384, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 16896, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 17408, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 17920, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 18432, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 18944, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 19456, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 19968, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 20480, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 20992, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 21504, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 22016, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 22528, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 23040, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 23552, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 24064, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 24576, 32704, 32767, 32768, 32831 }, // 旅馆房间
            { 25088, 32704, 32767, 32768, 32831 }
    // 旅馆房间
    };

    /**
     * 传回所有地图的编号
     * 
     * @return ArraryList
     */
    public static List<Integer> listMapIds() {
        final List<Integer> ids = Lists.newList();

        final File mapDir = new File(MAP_DIR);
        for (final String name : mapDir.list()) {
            final File mapFile = new File(mapDir, name);
            if (!mapFile.exists()) {
                continue;
            }
            if (!FileUtil.getExtension(mapFile).toLowerCase().equals("txt")) {
                continue;
            }
            int id = 0;
            try {
                final String idStr = FileUtil.getNameWithoutExtension(mapFile);
                id = Integer.parseInt(idStr);
            } catch (final NumberFormatException e) {
                continue;
            }
            ids.add(id);
        }
        return ids;
    }

    /**
     * 取得所有地图与编号的 Mapping
     * 
     * @return Map
     * @throws IOException
     */
    @Override
    public Map<Integer, L1Map> read() throws IOException {
        final Map<Integer, L1Map> maps = Maps.newMap();

        for (final int[] info : MAP_INFO) {
            final int mapId = info[MAPINFO_MAP_NO];
            final int xSize = info[MAPINFO_END_X] - info[MAPINFO_START_X] + 1;
            final int ySize = info[MAPINFO_END_Y] - info[MAPINFO_START_Y] + 1;

            try {
                final L1V1Map map = new L1V1Map(mapId, this.read(mapId, xSize,
                        ySize), info[MAPINFO_START_X], info[MAPINFO_START_Y],
                        MapsTable.getInstance().isUnderwater(mapId), MapsTable
                                .getInstance().isMarkable(mapId), MapsTable
                                .getInstance().isTeleportable(mapId), MapsTable
                                .getInstance().isEscapable(mapId), MapsTable
                                .getInstance().isUseResurrection(mapId),
                        MapsTable.getInstance().isUsePainwand(mapId), MapsTable
                                .getInstance().isEnabledDeathPenalty(mapId),
                        MapsTable.getInstance().isTakePets(mapId), MapsTable
                                .getInstance().isRecallPets(mapId), MapsTable
                                .getInstance().isUsableItem(mapId), MapsTable
                                .getInstance().isUsableSkill(mapId));

                maps.put(mapId, map);
            } catch (final IOException e) {
                _log.log(Level.SEVERE, e.getLocalizedMessage(), e);
            }
        }

        return maps;
    }

    /**
     * 读取指定编号的地图
     * 
     * @param id
     *            地图编号
     * @return L1Map
     * @throws IOException
     */
    @Override
    public L1Map read(final int id) throws IOException {
        for (final int[] info : MAP_INFO) {
            final int mapId = info[MAPINFO_MAP_NO];
            final int xSize = info[MAPINFO_END_X] - info[MAPINFO_START_X] + 1;
            final int ySize = info[MAPINFO_END_Y] - info[MAPINFO_START_Y] + 1;

            if (mapId == id) {
                final L1V1Map map = new L1V1Map(mapId, this.read(mapId, xSize,
                        ySize), info[MAPINFO_START_X], info[MAPINFO_START_Y],
                        MapsTable.getInstance().isUnderwater(mapId), MapsTable
                                .getInstance().isMarkable(mapId), MapsTable
                                .getInstance().isTeleportable(mapId), MapsTable
                                .getInstance().isEscapable(mapId), MapsTable
                                .getInstance().isUseResurrection(mapId),
                        MapsTable.getInstance().isUsePainwand(mapId), MapsTable
                                .getInstance().isEnabledDeathPenalty(mapId),
                        MapsTable.getInstance().isTakePets(mapId), MapsTable
                                .getInstance().isRecallPets(mapId), MapsTable
                                .getInstance().isUsableItem(mapId), MapsTable
                                .getInstance().isUsableSkill(mapId));
                return map;
            }
        }
        throw new FileNotFoundException("地图编号: " + id);
    }

    /**
     * 依照输入大小读取指定编号地图
     * 
     * @param mapId
     *            地图编号
     * @param xSize
     *            X座标大小
     * @param ySize
     *            Y座标大小
     * @return byte[][]
     * @throws IOException
     */
    public byte[][] read(final int mapId, final int xSize, final int ySize)
            throws IOException {
        final byte[][] map = new byte[xSize][ySize];
        final LineNumberReader in = new LineNumberReader(new BufferedReader(
                new FileReader(MAP_DIR + mapId + ".txt")));

        int y = 0;
        String line;
        while ((line = in.readLine()) != null) {
            if ((line.trim().length() == 0) || line.startsWith("#")) {
                continue; // 跳过空行与注解
            }

            int x = 0;
            final StringTokenizer tok = new StringTokenizer(line, ",");
            while (tok.hasMoreTokens()) {
                final byte tile = Byte.parseByte(tok.nextToken());
                map[x][y] = tile;

                x++;
            }
            y++;
        }
        in.close();
        return map;
    }
}
